// 设置axios基础路径
axios.defaults.baseURL='http://www.itcbc.com:8000'
// 自动填充所有的ajax的请求头,设置Authorization的值为某个token
// axios.defaults.header.common['Authorization']=localStorage.getItem('token')


// 请求拦截器 - 判断当前请求头的地址是否为注册或者登录,不是这两个就是添加token
axios.interceptors.request.use(function(config){
    // config就是axios()中的参数!!!
    // 判断当前请求的地址是否为注册或者登录
    if (config.url.indexOf('/api')==-1) {
        // 不是注册或者登录就添加token,不要用对象覆盖,因为headers里面有默认值
        config.headers['Authorization']=localStorage.getItem('token')
        // console.log(config);
    }
    // 无论什么情况,返回配置参数config
    return config
},function(error){
    // 固定语法
    return Promise.reject(error)
})

// 设置响应拦截器 - 拦截响应后判断响应状态码
// 处理业务状态码为1的情况
axios.interceptors.response.use(function(response){//处理响应状态码200 300
    if (response.data.code ==1) {
        // 不要写return,因为后面要返回response
        toastr.warning(response.data.message)
    }
    // 一定要在if语句外面,返回响应数据
    return response
},function(error){//处理响应状态码400(客户端错误)  500(服务端错误)
    // 发送的ajax请求携带的token如果有问题,或者没有token,都会触发响应拦截器错误
    // 所以,我们可以处理两个问题:1.登录拦截(没有登录直接访问首页)2.token失效
    // 没有登录,或者token失效都是跳转到登录页,强制登录!!!
    // 判断身份认证失败,而不是其他的错误!!!
    if (error.response&&error
        .response.data.message =='身份认证失败') {
        // 强制跳转到登录页,并销毁token
        if (location.href.indexOf('index.html')!==-1) {
            location.href = 'login.html'
        }else{//如果是dashboard.html/student.html/score.html
            window.parent.location.href ='login.html'
        }
        // location.href = 'login.html'
        localStorage.removeItem('token')
    }
    // 固定语法
    return Promise.reject(error)
})